#ifndef __REMOTE_TASK_H
#define __REMOTE_TASK_H

#include "my_main.h"

typedef struct{
		_Bool key_Q;
		_Bool key_W;
		_Bool key_E;
		_Bool key_R;
		_Bool key_A;
		_Bool key_S;
		_Bool key_D;
		_Bool key_F;
		_Bool key_G;
		_Bool key_Z;
		_Bool key_X;
		_Bool key_C;
		_Bool key_V;
		_Bool key_B;
		_Bool key_SHIFT;
		_Bool key_CTRL;
}key_boad_t;
extern key_boad_t  key_boad;


typedef struct{
	struct{
		uint16_t ch0;
		uint16_t ch1;
		uint16_t ch2;
		uint16_t ch3;
		uint8_t  s1;
		uint8_t  s2;
		uint16_t sw;
				}rc;	
	struct{
		int16_t x;
		int16_t y;
		int16_t z;
		uint8_t press_l;
		uint8_t press_r;
				}mouse;
	struct{
		uint16_t v;
				}key;
}RC_Ctl_t;

extern RC_Ctl_t RC_Ctl;

typedef	struct
{
	float ch0;
	float ch1;
	float ch2;
	float ch3;

}cal_ch_t;
extern cal_ch_t cal_ch;



typedef struct{
u8 s1;
u8 s2;
_Bool key_Q;
_Bool key_W;
_Bool key_E;
_Bool key_R;
_Bool key_A;
_Bool key_S;
_Bool key_D;
_Bool key_F;
_Bool key_G;
_Bool key_Z;
_Bool key_X;
_Bool key_C;
_Bool key_V;
_Bool key_B;
_Bool key_SHIFT;
_Bool key_CTRL;
_Bool key_l;
_Bool key_r;
}key_valu_t;
extern key_valu_t last_key_valu;
extern key_valu_t this_key_valu;


void RefreshKeyValu(void);
void Remote_Task(void *parameter);
void KeyBoardProcess(key_boad_t* key,uint16_t key_v_in);
float DeathAreaProcess(uint16_t *ch_raw_val,int death_val);
void ProcessRC(u8 *Data);
void Rc_data_Init(void);
RC_Ctl_t *get_remote_control_point(void);
#endif
